This invention relates generally to applications which use computer graphics techniques to display graphic objects on a video monitor. More particularly, this invention relates to a system and method for palette management for displaying regular graphic objects.
During the past decade, the graphics capabilities of personal computers, set-top boxes and home video game units have rapidly improved. Applications developers naturally have taken advantage of these improvements by designing increasingly sophisticated graphically oriented applications, such as video games, program guides and multimedia which rely heavily on computer graphics techniques to display graphic objects on a video monitor. Such graphically oriented computer applications running on modern hardware platforms are now capable of displaying and animating extremely complex graphical images. These applications can generate graphic objects having a realistic quality that was previously difficult to achieve.
As the quality of graphically oriented computer applications has improved, so has the ability of many users of such applications to discriminate between poor quality and high quality animation. Indeed, graphics quality is believed to contribute significantly to the commercial acceptance of many video games, program guides and multimedia applications. Accordingly, computer applications developers have continued to explore ways in which graphics quality can be improved.
As a particular application, consider the increasing importance of television program guides. Cable, satellite, and broadcast television systems provide viewers with a large number of television channels. Viewers have traditionally consulted printed television program schedules to determine the programs being broadcast at a particular time.
Passive television program guides provide a scrolling or paged list of television program listings on a dedicated television channel. A television user may view the television program listings by tuning to the dedicated channel. The upper portion of a passive program guide display may be used to display advertising videos and associated text descriptions. The content of the text descriptions may be targeted toward particular regions. Passive television program guides are not capable of providing the user with any interactive features.
More recently, interactive electronic television program guides have been developed that allow television program information to be displayed on a viewer""s television. Interactive program guides are typically implemented on set-top boxes. Such program guides allow users to view television program listings in different display formats. For example, a user may instruct the program guide to display a grid of program listings organized in a channel-ordered or a time-ordered list. Users may also search and sort program listing by theme (e.g., movies, sports, etc.) or by title (i.e., alphabetically). A user may view additional information on a program by placing a highlight region on a desired program listing and pressing an xe2x80x9cinfoxe2x80x9d button. The user may purchase a pay program from the program guide by placing the highlight region on a program listing and pressing an xe2x80x9cOKxe2x80x9d button. Some systems allow the user to select a program for recording by placing the highlight region on a program listing and pressing a xe2x80x9crecordxe2x80x9d button.
Video monitors used in conjunction with personal computers, set-top box equipment for television program guides and video game equipment for video games generally have an array of pixels which are selectively illuminated to display images on the screen. In order to display an object at a particular location on the screen, video display circuitry in a computer system, set-top box, or video game system (herein after sometimes generically referred to as a computer system) connected to the video monitor selects a subset of pixels from the array, and causes the video monitor to illuminate each pixel in the subset using a color that is desired for the object being displayed.
Many graphics applications (such as television program guides and video games) which run on set top boxes and personal computers are limited to an eight-bit color palette (i.e., 256 colors) or even less. In many instances, the size of the color look-up table (xe2x80x9cCLUTxe2x80x9d) of the graphics display hardware limits the number of colors that may be displayed on a single scan line to as few as sixteen. Although a larger number of colors may be displayed on a single screen, only those colors contained in the relatively small CLUT can be displayed on any given single line.
One solution to the problem caused by the limited number of colors that may be displayed on a single scan line is to analyze the image to be displayed and generate a CLUT for each line based on only the colors present in the image. Such an approach involves generating and storing a CLUT for each scan line and is possible when displaying regular objects, such as three-dimensional tubes. A regular object is any screen graphic having a describable geometric shape (i.e., a vertical center which can be either calculated or approximated). However, the number of CLUTs is often quite large and difficult to manage.
It would therefore be desirable to provide a system and method for palette management for displaying regular graphic objects which uses a relatively small number of CLUTs.
The above-identified difficulties associated with displaying regular objects on a video monitor are overcome by this invention. More particularly, this invention provides a system and method for palette management for displaying regular graphic objects which uses a relatively small number of CLUTs.
The system and method of the present invention advantageously can be implemented using readily available, conventional hardware that is capable of executing graphically oriented computer applications. The system preferably includes a microprocessor (or micro-controller), random access memory (xe2x80x9cRAMxe2x80x9d), and a video monitor (e.g., a computer monitor or television). In addition, the system can include a removable media input/output (xe2x80x9cI/Oxe2x80x9d) device (e.g., a floppy disk drive, tape drive, compact disk read-only memory (xe2x80x9cCD-ROMxe2x80x9d) drive, etc.), a user input device (e.g., a keyboard, mouse, microphone, joystick, trackball, etc.), a video controller (e.g., a graphics card), and a hard disk drive. Alternatively, the principles of the present invention may be implemented on other suitable hardware platforms such as television program guide systems or home video game systems.